package com.study.zjh.smartrefreshdemo.view;

import android.content.Context;
import android.view.View;
import android.widget.TextView;

import com.billy.android.swipe.SmartSwipeRefresh.SmartSwipeRefreshHeader;
import com.study.zjh.smartrefreshdemo.R;

public class SelfSmartSwipeHeader implements SmartSwipeRefreshHeader {

    private Context context;
    private TextView tv_content;

    public SelfSmartSwipeHeader(Context context){
        this.context=context;
    }

    /**
     * 获取刷新控件的UI布局，不能为null
     */
    @Override
    public View getView() {
        View view = View.inflate(context, R.layout.layout_hesder,null);
        tv_content=(TextView)view.findViewById(R.id.tv_content);
        tv_content.setText("下拉刷新！");
        return view;
    }

    /**
     * 初始化回调方法，在RefreshView作为header或footer被添加到{@link DrawerConsumer} or {@link SlidingConsumer}之前被调用
     * @param horizontal true: 工作方向为横向
     *                   false: 工作方向为纵向
     */
    @Override
    public void onInit(boolean horizontal) {

    }

    /**
     * 开始工作时回调
     */
    @Override
    public void onStartDragging() {
        tv_content.setText("onStartDragging下拉刷新");
    }

    /**
     * 工作过程中回调
     * @param dragging 是否用户手势拖动
     * @param progress 进度，关闭状态为0，完全打开状态为1，取值范围：[0F, 1F + overSwipeFactor]，超过1时是否会有回弹效果
     */
    @Override
    public void onProgress(boolean dragging, float progress) {
        tv_content.setText("onProgress下拉刷新");
    }

    /**
     * 当{@link SmartSwipeRefresh#finished(boolean)} 调用时回调此方法
     * @param success 数据加载是否成功
     * @return 延迟多少毫秒开始执行收回的动画（等待RefreshView动画结束并显示加载成功状态相关的UI）
     */
    @Override
    public long onFinish(boolean success) {
        tv_content.setText("结束刷新！");
        return 0;
    }

    @Override
    public void onReset() {

    }

    /**
     * 开始加载数据，展示加载数据时的相关UI动画
     */
    @Override
    public void onDataLoading() {
        tv_content.setText("onDataLoading正在刷新。。。");
    }
}
